Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

232
Views
El estilo "superior" del elemento HTML que se establece generó un número aleatorio pero no se movió a la posición en JavaScript

He estado trabajando en un proyecto y rehaciendo Snake. Se supone que todo el código establece la posición de la manzana en un número aleatorio y lo registra como si lo hiciera, pero la manzana permanece en el mismo lugar. El tipo de posición es "relativo", por lo que permanece dentro de un cuadro. Esta es la primera vez que uso HTML y Javascript juntos. El código simplemente no funciona (no hay errores ni advertencias). El código de generación de números aleatorios es el siguiente:

 function rand(min, max, step) { var delta, range, rand; if (arguments.length < 2) { max = min; min = 0; } if (!step) { step = 1; } delta = max - min; range = delta / step; rand = Math.random(); rand *= range; rand = Math.floor(rand); rand *= step; rand += min; return parseInt(rand); }

El código para establecer la posición de "manzanas" (en js):

 function generateApple() { let y = parseInt(rand(-15, 470, 15)) apple.style.top = y console.log(apple.style.top) }

Imprime con éxito la nueva ubicación pero no mueve el objeto HTML "manzana" a la posición. Tengo la posición inicial establecida en 15 en style.left y 15 en style.top . El CSS para la manzana es el siguiente:

 .apple { height: 15px; width: 15px; background-color: red; border: 2px; }

El código que establece la posición como relativa cuando se carga la ventana es el siguiente

 window.addEventListener('load', () => { snake.style.position = 'relative'; apple.style.position = 'relative' snake.style.left = 105; snake.style.top = 105; apple.style.top = 15; apple.style.left = 15; if (highScore == null) { window.localStorage.setItem('high_score', 0) } });

El código completo está en este sitio web: https://passionproject.on.fleek.co

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El evento de load de la ventana se activa después de que se haya ejecutado el JavaScript que está posicionando la manzana. Si coloca puntos de interrupción en su código, verá que primero mueve la manzana a la posición correcta y luego se dispara el detector de eventos de load .

Dado que su JS está en la parte inferior de la página, la solución más simple es no usar el detector de eventos de load y simplemente hacerlo de inmediato.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!